package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.system.domain.SysMealOrder;
import com.ruoyi.system.domain.vo.SysMealOrderVO;

/**
 * 报餐订单Service接口
 *
 * @author jijinwu
 * @date 2024-07-19
 */
public interface ISysMealOrderService
{
    /**
     * 查询报餐订单
     *
     * @param orderId 报餐订单主键
     * @return 报餐订单
     */
    public SysMealOrder selectSysMealOrderByOrderId(Long orderId);

    /**
     * 查询报餐订单列表
     *
     * @param sysMealOrder 报餐订单
     * @return 报餐订单集合
     */
    public List<SysMealOrder> selectSysMealOrderList(SysMealOrder sysMealOrder);

    public List<SysMealOrderVO> selectSysMealOrderVOList(SysMealOrder sysMealOrder);

    /**
     * 新增报餐订单
     *
     * @param sysMealOrder 报餐订单
     * @return 结果
     */
    public int insertSysMealOrder(SysMealOrder sysMealOrder);

    /**
     * 修改报餐订单
     *
     * @param sysMealOrder 报餐订单
     * @return 结果
     */
    public int updateSysMealOrder(SysMealOrder sysMealOrder);

    /**
     * 批量删除报餐订单
     *
     * @param orderIds 需要删除的报餐订单主键集合
     * @return 结果
     */
    public int deleteSysMealOrderByOrderIds(Long[] orderIds);

    /**
     * 删除报餐订单信息
     *
     * @param orderId 报餐订单主键
     * @return 结果
     */
    public int deleteSysMealOrderByOrderId(Long orderId);

    /**
     * 保存报餐订单记录
     * @param loginUser
     * @param userIds
     * @return
     */
    public int saveMealOrderLog(LoginUser loginUser,Long[] userIds,Long canteenId,String mealDate);

    List<SysMealOrderVO> listOrderByUserId(Long userId);

    /**
     * 取消订单
     * @param orderNumber
     * @return
     */
    public Integer cancelOrder(String orderNumber);
}
